// PART OF THE MACHINE SIMULATION. DO NOT CHANGE.

package nachos.machine;

/**
 * An event that affects elevator software.
 */
public final class ElevatorEvent {
	public ElevatorEvent(int event, int floor, int elevator) {
		this.event = event;
		this.floor = floor;
		this.elevator = elevator;
	}

	/** The event identifier. Refer to the <i>event*</i> constants. */
	public final int event;
	/** The floor pertaining to the event, or -1 if not applicable. */
	public final int floor;
	/** The elevator pertaining to the event, or -1 if not applicable. */
	public final int elevator;

	/** An up button was pressed. */
	public static final int eventUpButtonPressed = 0;
	/** A down button was pressed. */
	public static final int eventDownButtonPressed = 1;
	/** A floor button was pressed inside an elevator. */
	public static final int eventFloorButtonPressed = 2;
	/** An elevator has arrived and stopped at its destination floor. */
	public static final int eventElevatorArrived = 3;
	/** All riders have finished; the elevator controller should terminate. */
	public static final int eventRidersDone = 4;
}
